package gui;

import framework.GraphicsWrapper;
import framework.Rectangle;


/**
 * A graphical widget for GUI.
 * @author Caddey
 */
public interface Component {
	/**
	 * @param the_graphics
	 * @return the smallest width, height the
	 * component would like to be.
	 */
	public Rectangle getMinSize(final GraphicsWrapper the_graphics);
	
	/**
	 * @return width, height of the component.
	 */
	public Rectangle getSize();
	
	public void setSize(final int the_width, final int the_height);
	public void setSize(final Rectangle the_size);
	
	public void validate(GraphicsWrapper the_graphics);
	/**
	 * Draws the component to the screen.
	 * @param the_graphics
	 */
	public void render(final GraphicsWrapper the_graphics);
	

}
